/*
 * @Description: 
 * @Author: liuzl
 * @Date: 2024-09-25 19:14:49
 * @LastEditors: liuzl
 * @LastEditTime: 2024-09-25 19:35:01
 */
/**
 * Integer
 */
public class IntegerCompare {
public static void main(String[] args) {
    Integer i1 = new Integer(97);
    Integer i2 = new Integer(97);
    System.out.println(i1 == i2);//比较i1和i2的内存地址，结果为false，因为它们是两个不同的对象。
    System.out.println(i1.equals(i2));//比较i1和i2的值，结果为true，因为它们的值相等。
    Integer i3 = new Integer(148);
    Integer i4 = new Integer(148);
    System.out.println(i3 == i4);//同上
    System.out.println(i3.equals(i4));//同上
    Integer i5 = 97;
    Integer i6 = 97;
    System.out.println(i5 == i6);//比较i5和i6的内存地址，结果为true，因为它们引用同一个对象。
    System.out.println(i5.equals(i6));//比较i5和i6的值，结果为true，因为它们的值相等。
    Integer i7 = 148;
    Integer i8 = 148;//i7和i8是两个不同的Integer对象，因为148超出Integer缓存范围。
    System.out.println(i7 == i8);//false
    System.out.println(i7.equals(i8));//true
    int a = 148;
    int b = 97;
    Integer c = 97;//包装类型
    System.out.println(i7 == a);//自动拆箱，比较i7的值和a的值，结果为true
    System.out.println(b == c);//自动拆箱，比较b的值和c的值，结果为true。‌
}
}